This specification relates to distributed resource allocation.
A cloud computing system is a distributed system of physical computers and software that provides developers and other users with a service that allows them to deploy and run multiple instances of applications in a computing system. Cloud computing systems may execute user-provided applications within isolated user spaces of virtual machines (VMs), commonly referred to as software containers, or containers for short. Containers provide security and improve performance by isolating the application from other applications and from other components of an underlying computing platform without incurring the overhead typically associated with launching a full virtual machine.
Allocating resources in a distributed system involves selecting a particular resource, among many resources in the distributed system, to perform a particular task.